﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _77类的构造函数
{
    internal class Program
    {
        //new 关键字后面就是调用构造函数
        //构造函数,名字和类名一样,不能写返回值类
        //cto tab tab 可以快速生成一个构造函数

        private static void Main(string[] args)
        {
            //调用无参构造函数创建对象
            Player p1 = new Player();
            p1.name = "张三";
            p1.hp = 100;

            //调用有参数的构造函数创建对象
            Player p2 = new Player("李四", 110);
        }
    }
    //玩家类
    internal class Player
    {
        public string name;
        public int hp;

        //默认构造函数,我们自己没有写构造函数的时候系统隐式会提供一个
        public Player()
        {
        }
        //自己增加的有参数的构造函数,我们写了构造函数系统将不再提供默认构造函数
        public Player(string name, int hp)
        {
            this.name = name;
            this.hp = hp;
        }
    }

    #region 调用兄弟构造函数,了解即可

    internal class A
    {
        public int x;
        public float y;
        public string c;

        public A(int x)
        {
            this.x = x;
        }

        public A(int a, float b) : this(a)
        {
            this.y = b;
        }
    }
    #endregion 调用兄弟构造函数,了解即可
}